From 337367f0c6b5afa4a1bd2daffa5534b972c9d04b Mon Sep 17 00:00:00 2001 From: oliskoli Date: Fri, 29 Jun 2007 21:01:35 +0000 Subject: [PATCH] Move function 'strenquote' from unicsv to common utils. --- defs.h | 1 + util.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/defs.h b/defs.h index 1dffa3e8f..c62d0718b 100644 --- a/defs.h +++ b/defs.h @@ -747,6 +747,7 @@ int case_ignore_strcmp(const char *s1, const char *s2); int case_ignore_strncmp(const char *s1, const char *s2, int n); int str_match(const char *str, const char *match); int case_ignore_str_match(const char *str, const char *match); +char * strenquote(const char *str, const char quot_char); char *strsub(const char *s, const char *search, const char *replace); char *gstrsub(const char *s, const char *search, const char *replace); diff --git a/util.c b/util.c index 826308463..51b78cd3b 100644 --- a/util.c +++ b/util.c @@ -595,6 +595,33 @@ case_ignore_str_match(const char *str, const char *match) return res; } +char * +strenquote(const char *str, const char quot_char) +{ + int len; + char *cin, *cout; + char *tmp; + + if (str == NULL) cin = ""; + else cin = (char *)str; + + len = strlen(cin); + cout = tmp = xmalloc((len * 2) + 3); + + *cout++ = quot_char; + while (*cin) { + *cout++ = *cin; + if (*cin++ == quot_char) + *cout++ = quot_char; + } + *cout++ = quot_char; + *cout = '\0'; + + cout = xstrdup(tmp); + xfree(tmp); + return cout; +} + void printposn(const double c, int is_lat) { -- 2.30.2